The present invention relates to signal communications and, in particular, to reception of encoded signals over a communications channel.
The use of wireless communications is expanding rapidly, particularly as more radio spectrum becomes available for commercial use and as wireless phones become more commonplace. In addition, analog wireless communications are gradually being supplemented and even replaced by digital communications. In digital voice communications, speech is typically represented by a series of bits which may be modulated and transmitted from a base station of a wireless communications network to a mobile terminal device such as a wireless phone. The phone may demodulate the received waveform to recover the bits, which are then converted back into speech. In addition to voice communications, there is also a growing demand for data services, such as e-mail and Internet access, which typically utilize digital communications.
There are many types of digital communications systems. Traditionally, frequency-division-multiple-access (FDMA) is used to divide the spectrum up into a plurality of radio channels corresponding to different carrier frequencies. These carriers may be further divided into time slots, generally referred to as time-division-multiple-access (TDMA), as is done, for example, in the Digital-Advanced Mobile Phone Service (D-AMPS) and Global System for Mobile communication (GSM) standard digital cellular systems. Alternatively, if the radio channel is wide enough, multiple users can use the same frequencies using spread spectrum techniques and code-division-multiple-access (CDMA).
A typical digital communications system 19 is shown in FIG. 1. Digital symbols are provided to the transmitter 20, which maps the symbols into a representation appropriate for the transmission medium or channel (e.g. radio channel) and couples the signal to the transmission medium via antenna 22. The transmitted signal passes through the channel 24 and is received at the antenna 26. The received signal is passed to the receiver 28. The receiver 28 includes a radio processor 30, a baseband signal processor 32, and a post processing unit 34.
The radio processor typically tunes to the desired band and desired carrier frequency, then amplifies, mixes, and filters the signal to a baseband. At some point, the signal may be sampled and quantized, ultimately providing a sequence of baseband received samples. As the original radio signal generally has in-phase (I) and quadrature (Q) components, the baseband samples typically have I and Q components, giving rise to complex, baseband samples.
The baseband processor 32 may be used to detect the digital symbols that were transmitted. It may produce soft information as well, which gives information regarding the likelihood of the detected symbol values. The post processing unit 34 typically performs functions that depend on the particular communications application. For example, it may convert digital symbols into speech using a speech decoder.
A typical transmitter is shown in FIG. 2. Information bits, which may represent speech, images, video, text, or other content, are provided to forward-error-correction (FEC) encoder 40, which encodes some or all of the information bits using, for example, a convolutional encoder. The FEC encoder 40 produces coded bits, which are provided to an interleaver 42, which reorders the bits to provide interleaved bits. These interleaved bits are provided to a modulator 44, which applies an appropriate modulation for transmission. The interleaver 42 may perform a variety of types of interleaving.
The modulator 44 may apply any of a variety of modulations. Higher-order modulations are frequently utilized. One example is 8-PSK (8-ary phase shift keyed), in which 3 bits are sent using one of 8 constellation points in the in-phase (I)/ quadrature (Q) (or complex) plane. Another example is 16-QAM (16-ary quadrature amplitude modulated), in which 4 bits are sent at the same time. Higher-order modulation may be used with conventional, narrowband transmission as well as with spread-spectrum transmission.
In a conventional baseband processor, a baseband received signal is typically provided to a demodulator which produces soft bit values. These soft bit values are generally provided to a de-interleaver which reorders the soft bit values to provide de-interleaved soft bits. These de-interleaved soft bits may then be provided to a forward error correction (FEC) decoder which performs, for example, convolutional decoding, to produce detected information bits.
A second example of a conventional baseband processor employs multipass equalization, sometimes referred to as Turbo equalization, in which results, after decoding has completed, are passed back to the equalization circuit to re-equalize, and possibly re-decode, the received signal. Such a system is described, for example, in U.S. Pat. No. 5,673,291 to Dent et al. entitled xe2x80x9cSimultaneous demodulation and decoding of a digitally modulated radio signal using known symbolsxe2x80x9d which is hereby incorporated herein by reference. In multi-pass equalization, the processor typically initially performs conventional equalization and decoding. After decoding, the detected information bits are encoded and then re-interleaved to provide information to the multipass equalizer and soft information generator which re-equalizes the received baseband signal using the detected bit values. Typically, because of diagonal interleaving or the fact that some bits are not convolutionally encoded, the second pass effectively uses error corrected bits, as determined and corrected in the first pass, to help detection of other bits, such as bits which were not error correction encoded.
Both single pass and multipass baseband processors as described above typically use conventional FEC decoders. Conventional FEC decoders typically treat each soft bit value as if it were independent of all other values. For example, in a Viterbi decoder for convolutional codes, soft bit values are generally correlated to hypothetical code bit values and added. As the soft bit values typically correspond to loglikelihood values, adding soft values corresponds to adding loglikelihoods or multiplying probabilities.
By way of background, error correction codes, such as convolutional codes, in essence, provide error correction capability by generating one or more xe2x80x9cparityxe2x80x9d bits for transmission from each data bit to be transmitted. The ratio of data symbols to parity symbols is referred to as a coding rate. For example, if two parity bits are generated for each data bit, the code is known as a rate 1/2 code, with twice as many parity bits as original data bits being transmitted. If the rate of transmission is fixed, the time required to transmit such parity bits is twice as long as the time required to transmit the original data bits. More generally, if r parity bits are generated for each data bit, the code is known as a rate 1/r code. Typically, the parity bit transmission rate is adopted to be r times the message information bit rate.
Tables of parity equations for various code rates and constraint lengths that result in optimum codes are published in the technical literature. See, e.g., G. Clarke, Jr., and J. Cain, Error-Correction Coding for Digital Communications, Appendix B, Plenum Press, New York (1981).
The known methods for decoding convolutional codes include threshold decoding, Sequential Maximum Likelihood Sequence Estimation (SMLSE), and the stack algorithm. The SMLSE technique is commonly known as the Viterbi algorithm, which is described in the literature including D. Forney, xe2x80x9cThe Viterbi Algorithmxe2x80x9d, Proc. IEEE, Vol. 61, pp. 268-278 (March, 1973).
As noted above, r times more parity symbols than input data symbols are produced for a rate 1/r code, and, if all parity symbols are transmitted, an r-times redundancy has been provided to combat errors. It will, however, be appreciated that it is not necessary to transmit all of the parity symbols. If the transmitter and receiver have previously agreed on some regular method of determining which parity symbols are not transmitted, the code is then known as a punctured convolutional code. Punctured codes typically result in coding rates m/r, such as 13/29, where adaptation to a transmission rate that is r/m times the message information bit rate is required.
Punctured convolutional codes are widely used in digital wireless systems, such as in GSM and in the emerging Enhanced General Packet Radio Service/Enhanced Data GSM Environment (EGPRS/EDGE). In these systems, convolutional coding is typically first applied to a block of payload data to produce an initial signal block, sometimes referred to as an initial mother codeword. Subsequent puncturing typically allows a single coder to derive multiple codewords corresponding to a variety of code rates. A codeword may then be transmitted by the sending end and subsequently received by the receiving end where decoding takes place.
Such punctured codes may be processed at the receiving end using soft decoding. Soft decoding is based on soft information related to received symbols. The received symbols are characterized not only by their bit polarities, i.e., one or zero, but also by a magnitude or quality measure generally referred to as soft information. Soft information with a large magnitude indicates that a one or zero, respectively, is received with high probability whereas soft information with a magnitude close or equal to 0 typically represents a received symbol that is ambiguous.
Before decoding, the receiving decoder typically reverses the puncturing by filling the punctured symbol positions with zeros. As zero valued symbol typically does not convey any useful information to the decoder, the more symbols that are punctured, the less powerful the punctured codeword is compared with its original mother codeword.
Puncturing may be used in incremental redundancy to divide a mother codeword into several increments of parity bits (incremental codewords). If a previously transmitted incremental codeword(s) cannot be decoded, additional incremental codewords may be sent until the combined incremental codewords can be successfully decoded to determine the original data block. For example, a received incremental codeword may be decoded and error correction applied. The error detection code (such as a cyclical redundancy check (CRC)) may then be used to check whether or not the decoded and error corrected symbols are error free. If there are still errors in the decoded and error corrected symbols, as indicated by the CRC test, the received incremental codeword is retained and transmission of an additional incremental codeword is requested by the receiving end.
Puncturing will now be further illustrated with reference to the schematic diagram of FIG. 3. A block of source (or payload) data symbols, which may include CRC and tail symbols, is illustrated at block 200. The source data symbols 200 are convolutionally encoded, using a rate 1/3 code in the illustrated example, to produce an initial mother codeword 210. As shown in FIG. 3, every third symbol (starting from the third symbol of the mother codeword) of the initial mother codeword 210 is punctured to provide an incremental codeword 215 for transmission which has an effective coding rate of 1/2. Two additional incremental codewords can be generated, again by puncturing every third symbol of the initial mother codeword, but starting from the first of the second symbol respectively. Both of these incremental codewords include the coded symbols C13, C23 . . . , CN3 which were punctured in the first incremental codeword.
Methods for decoding a punctured coded signal are provided. The signal is received to provide received symbols. Symbol positions associated with punctured locations are initialized to default symbol values. The received symbols and the default symbol values are error correction decoded to provide first signal estimates. Punctured location symbol estimates are generated based on the first signal estimates and the received symbols are combined with the punctured location symbol estimates placed in corresponding punctured locations. The combined received symbols with the punctured location symbol estimates are error correction decoded to provide second signal estimates.
As will further be appreciated by those of skill in the art, while described above with reference to method aspects, the present invention may also be embodied as baseband processors, mobile terminals, base stations and systems.